package com.heiye.blog.ai.strategy.text;

import com.heiye.blog.ai.enums.TextModelTypeEnum;
import com.heiye.blog.ai.model.dto.AIChatRequest;
import com.heiye.blog.ai.model.vo.AIResponse;
import reactor.core.publisher.Flux;

/**
 * @author: heiye
 * @date: 2025/11/07 下午6:23
 * @version: v1.0.0
 * @description: 文本模型策略
 */
public interface TextModelStrategy {
    /**
     * 获取存储类型枚举
     *
     * @return TextModelTypeEnum
     */
    TextModelTypeEnum getTextModelType();

    /**
     * 处理流式响应
     *
     * @param aiChatRequest
     * @return
     */
    Flux<AIResponse> handleStreamResponse(AIChatRequest aiChatRequest);

    /**
     * 对参数进行审查
     *
     * @return
     */
    void reviewAndOptimizeRequest(AIChatRequest aiChatRequest);
}
